package org.example.day05;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * @author zlxad
 * @version 1.0
 * @description: TODO+
 * <div>  某个产品的RESTful API集合部署在服务器集群的多个节点上，近期对客户端访问日志进行了采集，需要统计各个API的访问频次，根据热点信息在服务器节点之间做负载均衡，现在需要实现热点信息统计查询功能。 </div> <div>  RESTful API的由多个层级构成，层级之间使用 / 连接，如 /A/B/C/D 这个地址，A属于第一级，B属于第二级，C属于第三级，D属于第四级。 </div> <div>  现在负载均衡模块需要知道给定层级上某个名字出现的频次，未出现过用0次表示，实现这个功能。<br> </div>
 * <p>
 * 某个产品的RESTful API集合部署在服务器集群的多个节点上，近期对客户端访问日志进行了采集，需要统计各个API的访问频次，根据热点信息在服务器节点之间做负载均衡，现在需要实现热点信息统计查询功能。
 * RESTful API的由多个层级构成，层级之间使用 / 连接，如 /A/B/C/D 这个地址，A属于第一级，B属于第二级，C属于第三级，D属于第四级。
 * 现在负载均衡模块需要知道给定层级上某个名字出现的频次，未出现过用0次表示，实现这个功能。
 * @date 2024/3/11 15:22
 */
public class test097 {
    public static void main(String[] args) {
        // 读取输入
        Scanner scanner = new Scanner(System.in);
        int N = scanner.nextInt(); // 日志条数
        List<String> apiLogs = new ArrayList<>(); // API 日志列表
        for (int i = 0; i < N; i++) {
            apiLogs.add(scanner.next()); // 添加日志到列表
        }
        int L = scanner.nextInt(); // 读取层级
        String keyword = scanner.next(); // 读取关键字

        // 计算频次并输出结果
        int frequency = countApiFrequency(N, apiLogs, L, keyword);
        System.out.println(frequency);
    }

    private static int countApiFrequency(int n, List<String> apiLogs, int l, String keyword) {
        // 初始化频次为0
        int frequency = 0;

        // 遍历日志列表
        for (String api : apiLogs) {
            // 将每条API日志按'/'分割成层级列表
            String[] levels = api.split("/");
            // 如果层级数大于或等于所查询的层级
            if (levels.length > l) {
                // 检查对应层级的名称是否与关键字完全匹配
                if (levels[l].equals(keyword)) {
                    // 如果匹配，则频次加1
                    frequency++;
                }
            }
        }

        // 返回最终频次
        return frequency;
    }
}

